package com.domus.dreamMenu.comunicacao;

import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.util.ArrayList;


import com.domus.dreamMenu.resource.Resources;
import com.domus.dreamMenu.tipos.AreaMesa;
import com.domus.dreamMenu.tipos.Garcom;
import com.domus.dreamMenu.tipos.Mesa;
import com.domus.dreamMenu.tipos.Prato;
import com.domus.dreamMenu.tipos.Secao;

public class ImplemetadorMetodosRemotos implements InterfaceRemotaDoSevidorAdministrador {

	public static InterfaceRemotaDoSevidorAdministrador interfaceRemotaDoServidor;
	
	public ImplemetadorMetodosRemotos(){
		iniciarServidor();
	}
	
	
	public static void iniciarServidor(){ 
		if(interfaceRemotaDoServidor==null){
			try {
				interfaceRemotaDoServidor = (InterfaceRemotaDoSevidorAdministrador)
				Naming.lookup("rmi://"+Resources.enderecoIpDoServidor+":"+Resources.portaUsadaEmRMI+"/Servidor");
			} catch (MalformedURLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (RemoteException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (NotBoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		
	}
	
	
	
	public void alterarGarcom(Garcom novo, Integer chave) {
		try{
			interfaceRemotaDoServidor.alterarGarcom(novo, chave);
		}
		catch(Exception e){
			
		}
		
	}

	
	public void alterarMesa(Mesa novo, Integer chave) {
		try{
			interfaceRemotaDoServidor.alterarMesa(novo, chave);
		}
		catch(Exception e){
			
		}
		
	}

	
	public void alterarPrato(Prato novo, Integer chave) {
		try{
			interfaceRemotaDoServidor.alterarPrato(novo, chave);
		}
		catch(Exception e){
			
		}
		
	}

	
	public void alterarSecao(Secao novo, Integer chave) {
		try{
			interfaceRemotaDoServidor.alterarSecao(novo, chave);
		}
		catch(Exception e){
			
		}
		
	}

	
	public void inserirGarcom(Garcom novo) {
		try{
			interfaceRemotaDoServidor.inserirGarcom(novo);
		}
		catch(Exception e){
			
		}
		
	}

	
	public void inserirMesa(Mesa novo) {
		try{
			interfaceRemotaDoServidor.inserirMesa(novo);
		}
		catch(Exception e){
			
		}
		
	}

	
	public void inserirPrato(Prato novo) {
		try{
			interfaceRemotaDoServidor.inserirPrato(novo);
		}
		catch(Exception e){
			
		}
		
	}

	
	public void inserirSecao(Secao novo) {
		try{
			interfaceRemotaDoServidor.inserirSecao(novo);
		}
		catch(Exception e){
			
		}
		
	}

	
	public void removerGarcom(Integer chave) {
		try{
			interfaceRemotaDoServidor.removerGarcom(chave);
		}
		catch(Exception e){
			
		}
		
	}

	
	public void removerMesa(Integer chave) {
		try{
			interfaceRemotaDoServidor.removerMesa(chave);
		}
		catch(Exception e){
			
		}
		
	}

	
	public void removerPrato(Integer chave) {
		try{
			interfaceRemotaDoServidor.removerPrato(chave);
		}
		catch(Exception e){
			
		}
	}

	
	public void removerSecao(Integer chave) {
		try{
			interfaceRemotaDoServidor.removerSecao(chave);
		}
		catch(Exception e){
			
		}
		
	}


	public ArrayList<Garcom> consultarGarcom() throws RemoteException {
		try{
			interfaceRemotaDoServidor.consultarGarcom();
		}
		catch(Exception e){
			
		}
		return null;
	}


	public ArrayList<AreaMesa> consultarAreasMesas() throws RemoteException {
		try{
			interfaceRemotaDoServidor.consultarAreasMesas();
		}
		catch(Exception e){
			
		}
		return null;
	}


	public ArrayList<Mesa> consultarMesa() throws RemoteException {
		try{
			interfaceRemotaDoServidor.consultarMesa();
		}
		catch(Exception e){
			
		}
		return null;
	}

}
